/**
 *
 * @author T-Complement
 */

package iuTaxSimula;

import mnTaxSimula.Simulacion;
import mnTaxSimula.CentralComunicaciones;

public class IniciarSimulacion {

    private Simulacion simulacion;
    private CentralComunicaciones centralComunicaciones;

    /*Constructor de la clase Iniciar simulacion
     * tiene como parametros de entrada el objeto simulacion, centralComunicaciones
     */
    public IniciarSimulacion(Simulacion simulacion, CentralComunicaciones centralComunicaciones){
        this.simulacion = simulacion;
        this.centralComunicaciones = centralComunicaciones;
    }

   /*Metodo para  iniciar simulacion
    * Llama al metodo validarConfiguracion si es false lanza una excepcion a configurar
    * simualcion, si es true
    * @param evt evento generado al dar click sobre boton.
    * @pre
    * @pos Se abrio la Pantalla de Inicio y se cerró esta pantalla
    * @exception
    */
    public void iniciarSimulacion(){
        if(validarConfiguracion())
        {
            //*******centralComunicaciones.asignarNombre(); Tiene que ver con la Base de Datos... no es necesario por ahora
            centralComunicaciones.crearTaxis(simulacion.getcantidadTaxis(),simulacion.getcantidadCalles(),simulacion.getcantidadCarreras());
            //*******reloj();
        }
        else
        {
             //Hay que manejar la excepcion
        }
    }

    /* Método que revisa si se han configurado los parámetros de configuracion
    * @param
    * @pre
    * @pos
    * @exception
    */
    private boolean validarConfiguracion(){
        
        if((simulacion.getcantidadCalles() != 0) && (simulacion.getcantidadCarreras() !=0) && (simulacion.getcantidadTaxis()!=0))
            return true;
        else
            return false;
    }

    /* Método que se encarga de contrlar el tiempo de la simulacion
    * @param
    * @pre
    * @pos
    * @exception
    */
    private void reloj(){
        simulacion.sethora();
        simulacion.gethora();
        for(int i=0; i<60; i++){
                while(simulacion.gethora().SECOND!=0||simulacion.gethora().SECOND!=30)
                    simulacion.gethora().add(simulacion.gethora().SECOND,i);
        }
    }
}